import { ref } from 'vue'
import { defineStore } from 'pinia'
import { TOKEN, USER_INFO } from '@/constant'
// import { ElLoading } from 'element-plus'

export const useUserStore = defineStore('user', () => {
  const userInfo: any = ref(JSON.parse(localStorage.getItem(USER_INFO) as any))
  console.log(userInfo.value)

  const login = (data: any) => {
    // 设置token缓存
    localStorage.setItem(TOKEN, data.token)
    // 调用getUserInfo获取用户信息及系统配置和权限信息
    // getUserInfo({
    //   loginType: 'web'
    // }).then((res: any) => {
    //   // 设置用户信息缓存
    //   localStorage.setItem(USER_INFO, JSON.stringify(res))
    //   // 如果项目配置了系统标签，则将系统标签存于缓存
    //   const sysTag = import.meta.env.VITE_APP_SYSTAG
    //   if (sysTag) {
    //     localStorage.setItem(SYS_TAG, sysTag)
    //   }
    //   this.userInfo = res
    //   router.push('/')
    // })
  }

  const logout = () => {
    // const loading = ElLoading.service({
    //   lock: true,
    //   fullscreen: true
    // })
    // loginOut &&
    //   loginOut()
    //     .then(() => {
    //       /** */
    //     })
    //     .finally(() => {
    //       loading.close()
    //       localStorage.removeItem(TOKEN)
    //       localStorage.removeItem(USER_INFO)
    //       router.push('/login')
    //     })
    // !loginOut && loading.close()
  }

  const refreshUserInfo = (token: any) => {
    localStorage.setItem(TOKEN, token)
    // 调用getUserInfo获取用户信息
    // getUserInfo({
    //   loginType: 'web'
    // }).then((res: any) => {
    //   // 设置用户信息缓存
    //   localStorage.setItem(USER_INFO, JSON.stringify(res))
    //   this.userInfo = res
    // })
  }

  return { login, logout, refreshUserInfo }
})
